home *** CD-ROM | disk | FTP | other *** search
- package javax.swing;
-
- import java.applet.Applet;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Image;
- import java.awt.Rectangle;
- import java.awt.Toolkit;
- import java.awt.Window;
- import java.awt.image.ImageObserver;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Vector;
-
- public class RepaintManager {
- Hashtable dirtyComponents = new Hashtable();
- Hashtable tmpDirtyComponents = new Hashtable();
- Vector invalidComponents;
- boolean doubleBufferingEnabled = true;
- Image doubleBuffer;
- Dimension doubleBufferSize;
- private Dimension doubleBufferMaxSize;
- private static final Object repaintManagerKey;
- Rectangle tmp = new Rectangle();
- // $FF: synthetic field
- static Class class$javax$swing$RepaintManager;
-
- static {
- repaintManagerKey = class$javax$swing$RepaintManager != null ? class$javax$swing$RepaintManager : (class$javax$swing$RepaintManager = class$("javax.swing.RepaintManager"));
- }
-
- public synchronized void addDirtyRegion(JComponent var1, int var2, int var3, int var4, int var5) {
- if (var4 > 0 && var5 > 0 && var1 != null) {
- if (var1.getWidth() > 0 && var1.getHeight() > 0) {
- Object var6 = null;
- Object var7 = var1;
-
- while(true) {
- if (var7 != null) {
- if (!((Component)var7).isVisible() || ((Component)var7).getPeer() == null) {
- return;
- }
-
- if (!(var7 instanceof Window) && !(var7 instanceof Applet)) {
- var7 = ((Component)var7).getParent();
- continue;
- }
-
- var6 = var7;
- }
-
- Rectangle var8 = (Rectangle)this.dirtyComponents.get(var1);
- if (var8 == null) {
- this.dirtyComponents.put(var1, new Rectangle(var2, var3, var4, var5));
- } else {
- SwingUtilities.computeUnion(var2, var3, var4, var5, var8);
- }
-
- SystemEventQueueUtilities.queueComponentWorkRequest((Component)var6);
- return;
- }
- }
- }
- }
-
- public synchronized void addInvalidComponent(JComponent var1) {
- Object var2 = null;
- Object var3 = var1;
-
- while(true) {
- if (var3 != null) {
- if (var3 instanceof CellRendererPane || ((Component)var3).getPeer() == null) {
- return;
- }
-
- if (!(var3 instanceof JComponent) || !((JComponent)var3).isValidateRoot()) {
- var3 = ((Component)var3).getParent();
- continue;
- }
-
- var2 = var3;
- }
-
- if (var2 == null) {
- return;
- }
-
- Object var4 = null;
- Object var5 = var2;
-
- while(true) {
- if (var5 != null) {
- if (!((Component)var5).isVisible() || ((Component)var5).getPeer() == null) {
- return;
- }
-
- if (!(var5 instanceof Window) && !(var5 instanceof Applet)) {
- var5 = ((Component)var5).getParent();
- continue;
- }
-
- var4 = var5;
- }
-
- if (var4 == null) {
- return;
- }
-
- if (this.invalidComponents == null) {
- this.invalidComponents = new Vector();
- } else {
- int var6 = this.invalidComponents.size();
-
- for(int var7 = 0; var7 < var6; ++var7) {
- if (var2 == (Component)this.invalidComponents.elementAt(var7)) {
- return;
- }
- }
- }
-
- this.invalidComponents.addElement(var2);
- SystemEventQueueUtilities.queueComponentWorkRequest((Component)var4);
- return;
- }
- }
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- void collectDirtyComponents(Hashtable var1, JComponent var2, Vector var3) {
- boolean var12 = false;
- Object var9 = var2;
- Object var8 = var2;
- Rectangle var11 = var2._bounds;
- int var6 = 0;
- int var4 = 0;
- int var7 = 0;
- int var5 = 0;
- this.tmp = new Rectangle((Rectangle)var1.get(var2));
- SwingUtilities.computeIntersection(0, 0, var11.width, var11.height, this.tmp);
- if (!this.tmp.isEmpty()) {
- if (var2.isOpaque()) {
- var12 = true;
- }
-
- while(true) {
- Container var10 = ((Component)var8).getParent();
- if (var10 == null || !(var10 instanceof JComponent)) {
- if (var2 != var9) {
- this.tmp.setLocation(this.tmp.x + var6 - var4, this.tmp.y + var7 - var5);
- Rectangle var13 = (Rectangle)var1.get(var9);
- SwingUtilities.computeUnion(this.tmp.x, this.tmp.y, this.tmp.width, this.tmp.height, var13);
- }
-
- if (!var3.contains(var9)) {
- var3.addElement(var9);
- }
-
- return;
- }
-
- var8 = var10;
- if (((JComponent)var10).isOpaque()) {
- var12 = true;
- }
-
- var4 += var11.x;
- var5 += var11.y;
- this.tmp.setLocation(this.tmp.x + var11.x, this.tmp.y + var11.y);
- var11 = ((JComponent)var10)._bounds;
- this.tmp = SwingUtilities.computeIntersection(0, 0, var11.width, var11.height, this.tmp);
- if (this.tmp.isEmpty()) {
- return;
- }
-
- if (var1.get(var10) != null) {
- var9 = var10;
- var6 = var4;
- var7 = var5;
- }
- }
- }
- }
-
- public static RepaintManager currentManager(Component var0) {
- RepaintManager var1 = (RepaintManager)SwingUtilities.appContextGet(repaintManagerKey);
- if (var1 == null) {
- var1 = new RepaintManager();
- SwingUtilities.appContextPut(repaintManagerKey, var1);
- }
-
- return var1;
- }
-
- public static RepaintManager currentManager(JComponent var0) {
- return currentManager((Component)var0);
- }
-
- public Rectangle getDirtyRegion(JComponent var1) {
- Object var2 = null;
- synchronized(this){}
-
- try {
- var6 = (Rectangle)this.dirtyComponents.get(var1);
- } catch (Throwable var5) {
- throw var5;
- }
-
- return var6 == null ? new Rectangle(0, 0, 0, 0) : new Rectangle(var6);
- }
-
- public Dimension getDoubleBufferMaximumSize() {
- if (this.doubleBufferMaxSize == null) {
- this.doubleBufferMaxSize = Toolkit.getDefaultToolkit().getScreenSize();
- }
-
- return this.doubleBufferMaxSize;
- }
-
- public Image getOffscreenBuffer(Component var1, int var2, int var3) {
- Dimension var7 = this.getDoubleBufferMaximumSize();
- int var5;
- if (var2 < 1) {
- var5 = 1;
- } else if (var2 > var7.width) {
- var5 = var7.width;
- } else {
- var5 = var2;
- }
-
- int var6;
- if (var3 < 1) {
- var6 = 1;
- } else if (var3 > var7.height) {
- var6 = var7.height;
- } else {
- var6 = var3;
- }
-
- if (this.doubleBuffer != null && (this.doubleBuffer.getWidth((ImageObserver)null) < var5 || this.doubleBuffer.getHeight((ImageObserver)null) < var6)) {
- this.doubleBuffer = null;
- }
-
- int var8 = var5;
- int var9 = var6;
- if (this.doubleBuffer != null) {
- var8 = this.doubleBufferSize.width;
- var9 = this.doubleBufferSize.height;
- if (this.doubleBufferSize.width < var5) {
- var8 = var5;
- this.doubleBuffer = null;
- }
-
- if (this.doubleBufferSize.height < var6) {
- var9 = var6;
- this.doubleBuffer = null;
- }
- }
-
- if (this.doubleBuffer == null) {
- this.doubleBuffer = var1.createImage(var8, var9);
- this.doubleBufferSize = new Dimension(var8, var9);
- }
-
- return this.doubleBuffer;
- }
-
- public boolean isCompletelyDirty(JComponent var1) {
- Rectangle var2 = this.getDirtyRegion(var1);
- return var2.width == Integer.MAX_VALUE && var2.height == Integer.MAX_VALUE;
- }
-
- public boolean isDoubleBufferingEnabled() {
- return this.doubleBufferingEnabled;
- }
-
- public void markCompletelyClean(JComponent var1) {
- synchronized(this){}
-
- try {
- this.dirtyComponents.remove(var1);
- } catch (Throwable var4) {
- throw var4;
- }
-
- }
-
- public void markCompletelyDirty(JComponent var1) {
- this.addDirtyRegion(var1, 0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE);
- }
-
- public void paintDirtyRegions() {
- synchronized(this){}
-
- try {
- Hashtable var7 = this.tmpDirtyComponents;
- this.tmpDirtyComponents = this.dirtyComponents;
- this.dirtyComponents = var7;
- this.dirtyComponents.clear();
- } catch (Throwable var12) {
- throw var12;
- }
-
- int var2 = this.tmpDirtyComponents.size();
- if (var2 != 0) {
- byte var6 = 0;
- byte var15 = 0;
- int var8 = 0;
- int var9 = 0;
- Vector var3 = new Vector(var2);
- Enumeration var10 = this.tmpDirtyComponents.keys();
-
- while(var10.hasMoreElements()) {
- JComponent var4 = (JComponent)var10.nextElement();
- this.collectDirtyComponents(this.tmpDirtyComponents, var4, var3);
- }
-
- var2 = var3.size();
-
- for(int var1 = 0; var1 < var2; ++var1) {
- JComponent var14 = (JComponent)var3.elementAt(var1);
- Rectangle var5 = (Rectangle)this.tmpDirtyComponents.get(var14);
- var8 = var14.getHeight();
- var9 = var14.getWidth();
- SwingUtilities.computeIntersection(var6, var15, var9, var8, var5);
- var14.paintImmediately(var5.x, var5.y, var5.width, var5.height);
- }
-
- this.tmpDirtyComponents.clear();
- }
- }
-
- public synchronized void removeInvalidComponent(JComponent var1) {
- if (this.invalidComponents != null) {
- int var2 = this.invalidComponents.indexOf(var1);
- if (var2 != -1) {
- this.invalidComponents.removeElementAt(var2);
- }
- }
-
- }
-
- public static void setCurrentManager(RepaintManager var0) {
- if (var0 != null) {
- SwingUtilities.appContextPut(repaintManagerKey, var0);
- } else {
- SwingUtilities.appContextRemove(repaintManagerKey);
- }
-
- }
-
- public void setDoubleBufferMaximumSize(Dimension var1) {
- this.doubleBufferMaxSize = var1;
- if (this.doubleBuffer != null && (this.doubleBuffer.getWidth((ImageObserver)null) > var1.width || this.doubleBuffer.getHeight((ImageObserver)null) > var1.height)) {
- this.doubleBuffer = null;
- }
-
- }
-
- public void setDoubleBufferingEnabled(boolean var1) {
- this.doubleBufferingEnabled = var1;
- }
-
- public synchronized String toString() {
- StringBuffer var1 = new StringBuffer();
- if (this.dirtyComponents != null) {
- var1.append(String.valueOf(String.valueOf(this.dirtyComponents)));
- }
-
- return var1.toString();
- }
-
- public void validateInvalidComponents() {
- synchronized(this){}
-
- Vector var1;
- try {
- if (this.invalidComponents == null) {
- return;
- }
-
- var1 = this.invalidComponents;
- this.invalidComponents = null;
- } catch (Throwable var5) {
- throw var5;
- }
-
- int var2 = var1.size();
-
- for(int var3 = 0; var3 < var2; ++var3) {
- ((Component)var1.elementAt(var3)).validate();
- }
-
- }
- }
-